//package com.tdcoding.chat.dbase;
//
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//import com.tdcoding.chat.entities.ChannelInfo;
//import com.tdcoding.chat.entities.DeviceInfo;
//import com.tdcoding.chat.entities.FriendInfo;
//import com.tdcoding.chat.entities.RegionInfo;
//import com.tdcoding.chat.entities.UserInfo;
//import com.tdcoding.chat.helper.Logger;
//import com.tdcoding.chat.helper.SecurityHelper;
//import com.tdcoding.chat.helper.StringHelper;
//import com.tdcoding.chat.manager.ChatManager;
//import com.tdcoding.chat.manager.DBManager;
//
///**
// * 用户管理
// * 
// * @author Wellsa
// *
// */
//public class DBForUser {
//	 private static final String TAG = "DBForUser";
//	 private static final String USER_TABLE = "ofUser";
//	 private static final String FRIEND_TABLE = "ofFriend";
//	 private static final String FOLLOW_TABLE = "ofFollow";
//	 private static final String MEMBER_TABLE = "ofMember";
//	 private static final String MESSAGE_TABLE = "ofMessage";
//
//	/**
//	 * 登录
//	 * 
//	 * @param userName
//	 * @param userPwd
//	 * @param lplatform
//	 * @return -1不存在；0成功；1密码错误
//	 * @throws InvalidProtocolBufferException
//	 */
//	public static Object loginUser(String userName, String userPwd,
//			int lplatform) {
//		long userId = existUser(userName);
//		Logger.println(TAG, "loginUser", userId);
//		if (userId != 0) {
//			String where = "userName='" + userName + "' and password='"
//					+ userPwd + "'";
//			try {
//				ResultSet resultSet = DBManager.querySql(
//						0, USER_TABLE, null, where, null,
//						null, null);
//				UserInfo userInfo =new UserInfo();
//				if (resultSet.first()) {
//					userInfo.setUserId(userId);
//					userInfo.setUserName(resultSet.getString("userName"));
//					userInfo.setNickName(resultSet.getString("nickName") );
//					userInfo.setUserHead(resultSet.getString("userHead") );
//					userInfo.setSex(resultSet.getString("sex") );
//					userInfo.setEmail(resultSet.getString("email") );
//					userInfo.setIdentity(resultSet.getInt("identity"));
//					userInfo.setUserLevel(resultSet.getInt("userLevel"));
//					userInfo.setAllowedAdd(resultSet.getInt("allowedAdd"));
//					userInfo.setStarsign(resultSet.getString("starsign") );
//					userInfo.setBrithday(resultSet.getString("brithday") );
//					userInfo.setSignature(resultSet.getString("signature") );
//					RegionInfo hometown = DBForRegion.queryRegionInfo(userId,0);
//					if (hometown!=null) {
//						userInfo.setHometown(hometown);
//					}
//					RegionInfo location = DBForRegion.queryRegionInfo(userId,1);
//					if (location!=null) {
//						userInfo.setLocation(location);
//					}
//					userInfo.setSignature(resultSet.getString("signature") );
//					userInfo.setTelephone(resultSet.getString("telephone"));
//					userInfo.setModifiedDate(resultSet.getLong("modifiedDate"));
//					where = "userId=" + userId;
//					String set = "lplatform =" + lplatform
//							+ " , modifiedDate='" + new Date().getTime() + "'";
//					updateUserInfo(set, where);
//					return userInfo;
//				}
//			} catch (SQLException e) {
//				e.printStackTrace();
//			}
//		}
//		return -1;
//	}
//
//	/**
//	 * 是否存在用户（可以用于登录）
//	 * 
//	 * @param userName
//	 * @return
//	 */
//	public static long existUser(String userName) {
//		String where = "userName='" + userName+"'" ;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					USER_TABLE, null, where, null, null, null);
//			if (resultSet.first()) {
//				long userId = resultSet.getLong("userId");
//				return userId;
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return 0;
//	}
//
//	/**
//	 * 是否存在用户分组
//	 * 
//	 * @param userId
//	 * @param rosterName
//	 * @return
//	 */
//	public static boolean existRoster(long userId, String rosterName) {
//		String where = "rosterName='" + rosterName + "' and userId=" + userId;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			if (resultSet.first()) {
//				return true;
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return false;
//	}
//
//	/**
//	 * 查询用户信息
//	 * 
//	 * @param userId
//	 * @return
//	 * @throws InvalidProtocolBufferException
//	 */
//	public static UserInfo queryUserInfo(long userId) {
//		String sql="SELECT * FROM ofuser where userId="+userId;
//		try {
//			ResultSet resultSet = DBManager.querySql(0, sql);
//			UserInfo userInfo = null;
//			if (resultSet.first()) {
//				userInfo =new UserInfo();
//				userInfo.setUserId(resultSet.getLong("userId"));
//				userInfo.setUserName(resultSet.getString("userName"));
//				userInfo.setUserHead(resultSet.getString("userHead"));
//				userInfo.setNickName(resultSet.getString("nickName"));
//				userInfo.setSex(resultSet.getString("sex"));
//				userInfo.setIdentity(resultSet.getInt("identity"));
//				userInfo.setEmail(resultSet.getString("email"));
//				userInfo.setStarsign(resultSet.getString("starsign"));
//				userInfo.setSignature(resultSet.getString("signature"));
//				userInfo.setTelephone(resultSet.getString("telephone"));
//				userInfo.setModifiedDate(resultSet.getLong("modifiedDate"));
//				RegionInfo hometown = DBForRegion.queryRegionInfo(userId,0);
//				if (hometown!=null) {
//					userInfo.setHometown(hometown);
//				}
//				RegionInfo location = DBForRegion.queryRegionInfo(userId,1);
//				if (location!=null) {
//					userInfo.setLocation(location);
//				}
//				return userInfo;
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//
//	/**
//	 * 搜索用户列表
//	 * 
//	 * @param userId
//	 * @param keyword
//	 * @param pageIndex
//	 * @param pageCount
//	 * @return
//	 * @throws InvalidProtocolBufferException
//	 */
//	public static List<UserInfo> queryUserList(String keyword,long userId,int pageIndex,
//			int pageCount) {
//		List<UserInfo> userInfos = new ArrayList<UserInfo>();
//		String orderBy = " order by ofu.modifiedDate desc";
//		String where = "where ofu.userName like '%" + keyword
//				+ "%' or ofu.nickName like '%" + keyword + "%'";
//		String limit ="";
//		if (pageIndex!=0&&pageCount!=0) {
//			int start = pageCount * (pageIndex - 1);
//			int end = start + pageCount - 1;
//			limit = " limit "+start + "," + end;
//		}
//		String sql="SELECT ofu.*,"
//				+"(SELECT isFriend from offriend offr where offr.friendId=ofu.userId and offr.userId="+userId+") as isFriend,"
//				+"(SELECT isFollow from offollow offo where offo.followId=ofu.userId and offo.userId="+userId+") as isFollow"
//				+" FROM ofuser ofu "+where+orderBy+limit;
//		Logger.println(TAG, "queryUserList", sql);
//		try {
//			ResultSet resultSet = DBManager.querySql(0,sql);
//			while (resultSet.next()) {
//				UserInfo userInfo =new UserInfo();
//				long userId1=resultSet.getLong("userId");
//				if (userId1==userId) {
//					continue;
//				}
//				userInfo.setUserId(userId1);
//				userInfo.setUserName(resultSet.getString("userName"));
//				userInfo.setNickName(resultSet.getString("nickName"));
//				userInfo.setUserHead(resultSet.getString("userHead"));
//				userInfo.setIdentity(resultSet.getInt("identity"));
//				userInfo.setIsFollow(resultSet.getInt("isFollow"));
//				userInfo.setIsFriend(resultSet.getInt("isFriend"));
//				userInfo.setStarsign(resultSet.getString("starsign"));
//				userInfo.setSex(resultSet.getString("sex"));
//				userInfo.setEmail(resultSet.getString("email"));
//				userInfo.setSignature(resultSet.getString("signature"));
//				userInfo.setTelephone(resultSet.getString("telephone"));
//				userInfo.setModifiedDate(resultSet.getLong("modifiedDate"));
//				RegionInfo hometown = DBForRegion.queryRegionInfo(userId,0);
//				if (hometown!=null) {
//					userInfo.setHometown(hometown);
//				}
//				RegionInfo location = DBForRegion.queryRegionInfo(userId,1);
//				if (location!=null) {
//					userInfo.setLocation(location);
//				}
//				userInfos.add(userInfo);
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return userInfos;
//	}
//
//	/**
//	 * 列出所有好友
//	 * @param userId
//	 * @return
//	 */
//	public static List<FriendInfo> queryMyFriend(long userId,int isFriend) {
//		List<FriendInfo> friendInfos=new ArrayList<FriendInfo>();
//		String where = "userId=" + userId + " and isFriend=" + isFriend;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			while (resultSet.next()) {
//				FriendInfo friendInfo =new FriendInfo();
//				long friendId = resultSet.getLong("friendId");
//				friendInfo.setFriendId(friendId);
//				friendInfo.setIsFriend(resultSet.getInt("isFriend"));
//				friendInfo.setFriendHead(resultSet.getString("friendHead"));
//				friendInfo.setFriendName(resultSet.getString("friendName"));
//				friendInfo.setRemarkName(resultSet.getString("remarkName"));
//				friendInfo.setRosterName(resultSet.getString("rosterName"));
//				ChannelInfo channelInfo = ChatManager
//						.getChannelInfo(friendId);
//				int status = 5;
//				if (channelInfo != null)
//					status = channelInfo.getStatus();
//				friendInfo.setStatus(status);
//				friendInfos.add(friendInfo);
//			}
//			return friendInfos;
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	/**
//	 * 列出我的花名册
//	 * @param userId
//	 * @return
//	 */
//	public static List<String> queryMyRoster(long userId) {
//		List<String> rosters=new ArrayList<String>();
//		rosters.add("网友");
//		String where = "userId=" + userId ;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			while (resultSet.next()) {
//				String rosterName=resultSet.getString("rosterName");
//				rosters.add(rosterName);
//			}
//			return rosters;
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	/**
//	 * 列出所有好友
//	 * 
//	 * @param userId
//	 * @return
//	 */
//	public static FriendInfo queryFriendInfo(long userId,long friendId) {
//		String where = "userId=" + userId+" and friendId="+friendId;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			FriendInfo friendInfo =new FriendInfo();
//			if (resultSet.first()) {
//				friendInfo.setIsFriend(resultSet.getInt("isFriend"));
//				friendInfo.setFriendId(resultSet.getLong("friendId"));
//				friendInfo.setFriendHead(resultSet.getString("friendHead"));
//				friendInfo.setFriendName(resultSet.getString("friendName"));
//				friendInfo.setRemarkName(resultSet.getString("remarkName"));
//				friendInfo.setRosterName(resultSet.getString("rosterName"));
//				return friendInfo;
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//
//	/**
//	 * 列出所有好友
//	 * 
//	 * @param userId
//	 * @return
//	 */
//	public static ArrayList<FriendInfo> queryFriendList(long userId) {
//		ArrayList<FriendInfo> friendInfos = new ArrayList<FriendInfo>();
//		String where = "userId=" + userId + " and isFriend=" + 1;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			FriendInfo friendInfo =new FriendInfo();
//			while (resultSet.next()) {
//				friendInfo.setIsFriend(resultSet.getInt("isFriend"));
//				friendInfo.setFriendId(resultSet.getLong("friendId"));
//				friendInfo.setFriendHead(resultSet.getString("friendHead"));
//				friendInfo.setFriendName(resultSet.getString("friendName"));
//				friendInfo.setRemarkName(resultSet.getString("remarkName"));
//				friendInfo.setRosterName(resultSet.getString("rosterName"));
//				friendInfos.add(friendInfo);
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return friendInfos;
//	}
//
//	/**
//	 * 创建用户（可以用于注册）
//	 * 
//	 * @return -1失败；0成功；1已存在
//	 */
//	static final String CREATE_COLUMNS = "userId,userName,userHead,nickName,sex,email,telephone,identity,lplatform,rplatform"
//			+ ",password,allowedAdd,userLevel,creationDate";
//	public static int createUser(long userId, int rplatform,
//			UserInfo userInfo) {
//		long existUserId = existUser(userInfo.getUserName());
//		if (existUserId != 0) {
//			return 1;
//		}
//		String password=SecurityHelper.encryptSHA(userInfo.getPassword());
//		String values = userId + ",'" 
//				+ userInfo.getUserName()+ "','"
//				+ userInfo.getUserHead() + "','"
//				+ userInfo.getNickName() + "','" 
//				+ userInfo.getSex()+ "','" 
//				+ userInfo.getEmail() + "','"
//				+ userInfo.getTelephone() + "',"
//				+ userInfo.getIdentity() + "," 
//				+ 0 + "," + rplatform + ",'"
//				+ password + "'," 
//				+ 0 +","+ 0 + ",'"
//				+ new Date().getTime() + "'";
//		int result = DBManager.insertSql(0, USER_TABLE,
//				CREATE_COLUMNS, values);
//		return result;
//	}
//
//	/**
//	 * 更新用户信息
//	 * 
//	 * @param set
//	 * @param where
//	 * @return
//	 */
//	public static int updateUserInfo(String set, String where) {
//		return DBManager.updateSql(0, USER_TABLE, set, where);
//	}
//
//	/**
//	 * 删除花名册
//	 * 
//	 * @return
//	 */
//	public static int deleteRoster(long userId, String rosterName) {
//		String set ="rosterName='我的好友'";
//		String where = "userId=" + userId + " and rosterName='" + rosterName+ "'";
//		return DBManager.updateSql(0, FRIEND_TABLE, set, where);
//	}
//
//	/**
//	 * 更新用户信息
//	 * 
//	 * @param userId
//	 * @param password
//	 * @return
//	 */
//	public static int updateUserPwd(long userId, String password) {
//		String set = "password='" + password + "'";
//		String where = "userId=" + userId;
//		return DBManager
//				.updateSql(0, USER_TABLE, set, where);
//	}
//
//	/**
//	 * 更新用户头像
//	 * 暂定接口
//	 * @param userId
//	 * @param where
//	 * @return
//	 */
//	public static int updateUserHead(long userId, String head) {
//		String set = "userHead='" + head + "'";
//		String where = "userId=" + userId;
//		int result=DBManager.updateSql(0, USER_TABLE, set, where);
//		if (result==0) {
//			String set1 = "friendHead='" + head + "'";
//			String where1 = "friendId=" + userId;
//			String set2 = "memberHead='" + head + "'";
//			String where2 = "memberId=" + userId;
//			String set3 = "chatHead='" + head + "'";
//			String where3 = "chatId=" + userId;
//			String set4 = "chatToHead='" + head + "'";
//			String where4= "chatToId=" + userId;
//			DBManager.updateSql(0, FRIEND_TABLE, set1, where1);
//			DBManager.updateSql(0, MEMBER_TABLE, set2, where2);
//			DBManager.updateSql(0, MESSAGE_TABLE, set3, where3);
//			DBManager.updateSql(0, MESSAGE_TABLE, set4, where4);
//		}
//		return result;
//	}
//	
//	/**
//	 * 是否好友关系
//	 * 
//	 * @param userId
//	 * @param friendId
//	 * @return
//	 */
//	public static int isMyFriend(long userId, long friendId) {
//		String where = "userId=" + userId + " and friendId=" + friendId;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FRIEND_TABLE, null, where, null, null, null);
//			if (resultSet.first()) {
//				return resultSet.getInt("isFriend");
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return -3;
//	}
//	
//
//
//	/**
//	 * 加好友
//	 * @param userId
//	 * @param addFriendReq
//	 * @return 0成功；-1失败
//	 */
//	static final String FRIEND_COLUMNS = "userId,friendId,friendName,friendHead,rosterName,remarkName,"
//			+ "remarkInfo,isFriend";
//	public static int addFriend(long userId, FriendInfo friendInfo) {
//		int exist = isMyFriend(userId, friendInfo.getFriendId());
//		Logger.println(TAG, "addFriend", exist,userId, friendInfo);
//		if (exist==1) {
//			return exist;
//		}
//		if (exist!=-3) {	
//			String set="friendName='"+friendInfo.getFriendName() + "',"
//					+"friendHead='"+ friendInfo.getFriendHead() + "',"
//					+"remarkName='"+ friendInfo.getRemarkName() + "',"
//					+ "rosterName='"+friendInfo.getRosterName() + "',"
//					+ "remarkInfo='"+friendInfo.getRemarkInfo()+ "',"
//					+ "isFriend="+friendInfo.getIsFriend();
//			String where="userId="+userId+" and friendId="+friendInfo.getFriendId();
//			return updateFriendInfo(set, where);
//		}
//		else{
//			String rosterName=friendInfo.getRosterName();
//			if (!StringHelper.hasValue(rosterName)) {
//				rosterName="网友";
//			}
//			String values = userId + "," + friendInfo.getFriendId() + ",'"
//					+ friendInfo.getFriendName() + "','"
//					+ friendInfo.getFriendHead() + "','"
//					+ rosterName + "','"
//					+ friendInfo.getRemarkName() + "','"
//					+ friendInfo.getRemarkInfo() + "'," 
//					+ friendInfo.getIsFriend();
//			return DBManager.insertSql(0, FRIEND_TABLE,
//					FRIEND_COLUMNS, values);
//		}
//	
//	}
//
//	/**
//	 * 更新好友信息（同意或拒绝好友，黑名单，花名册，备注名）
//	 * 
//	 * @return
//	 */
//	public static int updateFriendInfo(String set, String where) {
//		return DBManager.updateSql(0, FRIEND_TABLE, set,
//				where);
//	}
//
//	/**
//	 * 删除好友
//	 * 
//	 * @param userId
//	 * @param friendId
//	 * @return
//	 */
//	public static int deleteFriend(long userId, long friendId) {
//		String where = "userId=" + userId + " and friendId=" + friendId;
//		return DBManager.deleteSql(0, FRIEND_TABLE, where);
//	}
//
//	/**
//	 * 是否加关注
//	 * 
//	 * @param userId
//	 * @param friendId
//	 * @return
//	 */
//	public static int isFollowing(long userId, long followId) {
//		String where = "userId=" + userId + " and followId=" + followId;
//		try {
//			ResultSet resultSet = DBManager.querySql(0,
//					FOLLOW_TABLE, null, where, null, null, null);
//			if (resultSet.first()) {
//				return 0;
//			}
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		return -1;
//	}
//
//	/**
//	 * 加关注
//	 * 
//	 * @param userId
//	 * @param followId
//	 * @param followName
//	 * @return
//	 */
//	static final String FOLLOW_COLUMNS = "userId,followId,followName,isFollow";
//	public static int addFollowing(long userId, long followId, String followName) {
//		String values = userId + "," + followId + ",'" + followName+"',"+0;
//		return DBManager.insertSql(0, FOLLOW_TABLE,
//				FOLLOW_COLUMNS, values);
//	}
//
//	/**
//	 * 取消关注
//	 * 
//	 * @param userId
//	 * @param friendId
//	 * @return
//	 */
//	public static int cancelFollowing(long userId, long followId) {
//		String where = "userId=" + userId + " and followId=" + followId;
//		return DBManager.deleteSql(0, FOLLOW_TABLE, where);
//	}
//
//	/**
//	 * 创建用户（可以用于注册）
//	 * 
//	 * @param userInfo
//	 * @return 0成功；1；失败 
//	 */
//	static final String COLUMNS = "deviceId,appVersion,sysVersion,cpuName,deviceImei"
//			+ ",deviceMac,deviceImsi,deviceName,mobilePhone,resolution";
//	public static int addDeviceInfo(long userId,String userName, DeviceInfo deviceInfo) {
//		if (deviceInfo == null) {
//			return -1;
//		}
//		String values = userId + ",'" + deviceInfo.getAppVersion() + "','"
//				+ deviceInfo.getSysVersion() + "','" + deviceInfo.getCpuName()
//				+ "','" + deviceInfo.getDeviceImei() + "','"
//				+ deviceInfo.getDeviceMac() + "','"
//				+ deviceInfo.getDeviceImsi() + "','"
//				+ deviceInfo.getDeviceName() + "','"
//				+ deviceInfo.getMobilePhone() + "','"
//				+ deviceInfo.getResolution() + "'";
//		return DBManager.insertSql(0, "ofDevice", COLUMNS,
//				values);
//	}
//
//}